/*
 * Copyright 2015 stanislawbartkowski@gmail.com 
 * Licensed under the Apache License, Version 2.0 (the "License"); 
 * you may not use this file except in compliance with the License. 
 * You may obtain a copy of the License at 
 * http://www.apache.org/licenses/LICENSE-2.0 
 * Unless required by applicable law or agreed to in writing, software 
 * distributed under the License is distributed on an "AS IS" BASIS, 
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
 * See the License for the specific language governing permissions and 
 * limitations under the License.
 */
package com.jython.ui.server.jpastoragekey;

import java.util.List;

import javax.inject.Inject;

import com.jython.ui.server.jpastoragekey.entity.AbstractRegistryEntry;
import com.jython.ui.server.jpastoragekey.entity.BlobEntry;
import com.jython.ui.server.jpatrans.ITransactionContextFactory;
import com.jythonui.server.storage.blob.IBlobHandler;

public class BlobEntryJpaHandler extends AbstractStorageJpaRegistry implements
        IBlobHandler {

    private final static String[] q = { "findBlobEntry", "removeBlobEntry",
            "getListBlobEntry" };

    @Inject
    public BlobEntryJpaHandler(ITransactionContextFactory iC) {
        super(iC, q);
    }

    @Override
    public void clearAll(String realM) {
        List<String> keys = getKeys(realM);
        for (String s : keys)
            removeEntry(realM, s);
    }

    @Override
    public void addBlob(String realM, String blobid, byte[] content) {
        addNewEntry(realM, blobid, content);

    }

    @Override
    public byte[] findBlob(String realM, String blobid) {
        return getEntry(realM, blobid);
    }

    @Override
    public void removeBlob(String realM, String blobid) {
        removeEntry(realM, blobid);

    }

    @Override
    AbstractRegistryEntry construct() {
        return new BlobEntry();
    }

    @Override
    public void changeBlob(String realM, String blobid, byte[] content) {
        this.putEntry(realM, blobid, content);

    }

    @Override
    public List<String> findBlobs(String realM) {
        return this.getKeys(realM);
    }

}
